package Agent;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.sql.SQLException;
import java.util.ArrayList;

import SLA.SLA;


public interface Agent extends Remote{
	public void query() throws RemoteException, Exception;
	public void setTotalTime(double totalTimeMax) throws RemoteException;
	public double getAvarageFlow() throws RemoteException;
	public void setAvarageFlow(double avarageFlow) throws RemoteException;
	public int getTuplesToReturn() throws RemoteException;
	public void setTuplesToReturn(int tuplesToReturn) throws RemoteException;
	public ArrayList<String> getTransaction() throws RemoteException;
	public void addTransaction(ArrayList<String> transaction) throws RemoteException;
	public void addQuery(String query) throws RemoteException;
	public void setTransaction(ArrayList<String> arrayList) throws RemoteException;
	public SLA getSla() throws RemoteException;
	public void setSla(SLA sla) throws RemoteException;
	public String getIp() throws RemoteException;
	public int getPort() throws RemoteException;
	public String getAgentName() throws RemoteException;
	public boolean isOn() throws RemoteException;
	public void setOn(boolean on) throws RemoteException;
	public void setUpAgent() throws RemoteException;
	double getTimeQueriesAlreadyExecuted() throws RemoteException;
	public double getTotalTime() throws RemoteException;
	public float getTimeMonitoring() throws RemoteException;
	
	
}
